1. Field of the Invention
This relates to a control system for a buffer that absorbs fluctuations in the transfer rate of fixed-length packets. In particular, it relates to a control system that holds the number of cells stored in the receiving buffer fixed using an ATM AAL1 sequence number.
2. Description of the Related Art
In recent years, services that perform unified handling of communications in a variety of forms including audio data, text data and image data have become indispensable; the core technology of these services is ATM (asynchronous transfer mode).
ATM stores information in cells and then transfers it. A cell is a fixed-length packet, consisting of a payload which contains the information to be transferred and a header which contains control information such as routing information.
In ATM, a variety of communication services are handled; the service quality (delay time, error rate, etc.) required by each service is different. The ATM adaptation layer (referred to below as the AAL) performs the function of absorbing these differences in quality. At present there are AALs of type 1 to type 5; investigations of the details are still in progress.
Services that transfer data at a Constant Bit Rate (CBR) include audio data, motion picture data transfer and circuit emulation. Circuit emulation handles data transferred at a CBR synchronized to a network clock; data are transferred as if they were on synchronized digital lines, so this method is called synchronous line transfer. This kind of CBR service is provided by AAL1.
FIG. 1 is an overall system configuration diagram. Here, the function that processes CBR data will be explained.
The ATM exchange device 11 has an ATM switch section 12. The ATM switch section 12 outputs each cell to the specified line in accordance with the routing information specified in the cell header. The ATM sending device 13 converts CBR data such as motion picture data and audio data into cells, then transfers each cell to the ATM exchange device 11 via a User Network Interface (UNI). The ATM receiving device 14 receives cells output from the ATM exchange device 11, reproduces data from these cells and transfers them to the transfer destination terminal as CBR data. The ATM sending device 13 and the ATM receiving device 14 can, for example, be installed within a terminal device such as a server machine or a personal computer. The CE sending section 15 and the CE receiving section 16 are installed within the ATM exchange device 11, and perform circuit emulation.
The CE sending section 15 receives CBR data directly, converts those data into cells and inputs them to the ATM switching section 12. The CE receiving section 16 outputs cells exchanged by the ATM switching section 12 to the specified transfer destination as CBR data without going through the UNI.
This invention is technology provided in a circuit that receives cells; it applies to, for example, the ATM receiving device 14 and the CE receiving device 16 in FIG. 1.
FIG. 2A shows the ATM cell configuration. An ATM cell consists of a 5-byte ATM header and a 48-byte Segmentation and Reassembly Protocol Data Unit (SAR-PDU). The ATM header includes routing information (VPI/VCI: Virtual Path Identifier/Virtual Channel Identifier). The HEC (Header Error Control) is used to detect and correct errors in the first 4 bytes of the ATM header. The SAR-PDU is an area in which the information to be transferred is stored; it is also called the payload.
FIG. 2B shows the configuration of the SAR-PDU in AAL1. In AAL1, SAR-PDU consists of a 1-byte SAR header and a 47-byte SAR-SDU (SAR Service Data Unit). The SAR header is used to indicate the cell sending sequence; this SAR header can be used to detect cell loss. The SAR-SDU is used as an information field. That is to say, CBR data such as audio data and motion picture data are split up into 47-byte segments for storage. When cells are transferred serially, they are sent in order from right to left and from top to bottom.
FIG. 2C shows the configuration of the SAR header. The SAR header consists of a 4-bit SNF (Sequence Number Field) and a 4-bit SNPF (Sequence Number Protection Field). The SNF consists of a CS bit that indicates the convergence sublayer and an SN (Sequence Number) that indicates binary numbers from 0 to 7. The SN is a number that indicates the order of sending; it is incremented cyclically. The SNPF consists of a CRC (Cyclic Reduction Check) that indicates the CRC operation value for the purpose of detecting and correcting SN errors, and an EP (Even Parity) bit that indicates the even parity.
Thus, in a CBR service which is regulated by AAL1, data which are required to be transferred at a fixed bit rate, such as motion picture data and audio data, are split up into 47-byte segments and stored in an SAR-SDU, then an ATM header that includes routing information is added to that SAR-SDU to make a cell. Then that cell is sent to the ATM network. On the receiving side, the data stored in the 47-byte SAR-SDU are fetched from the received cell, then the image data, audio data, etc. are reproduced at a fixed bit rate.
FIG. 3 explains the method of detecting cell loss using the Sequence Number (SN). FIG. 3A shows the case in which transfer takes place normally without cell loss. On the sending side, SN=0, 1, 2, 3, . . . , is assigned to each cell in the order in which it is sent. The ATM exchange device transfers those cells to the receiving side while keeping them in the same order. On the receiving side, the Sequence Numbers (SNs) of the received cells are detected; if each SN is 1 more than the preceding SN, it is considered that no cells have been lost.
FIG. 3B shows a case in which a cell has been lost. Here we assume that the cell SN=2 was discarded the ATM exchange device. In this case, the SNs detected on the receiving side are SN=0, 1, 3, . . . , so it is recognized that the cell SN=2 has been lost. In this way, the loss of cells is detected on the receiving side, and it is known which cells have been lost.
When CBR data are stored in a cell and transferred, the cells are sent at uniform intervals. On the receiving side, if the necessary information is extracted from the received cells which arrive at uniform intervals and reproduced, those reproduced data become CBR data.
However, the delay of cell transfer inside the ATM exchange device depends on, for example, the state of congestion of the path. For this reason, even if cells are sent from the sending side at uniform intervals, it sometimes happens that the cells do not arrive at the receiving side at uniform intervals. This phenomenon is called "fluctuation". When the arrival intervals of cells fluctuate, even if CBR data are stored in cells and sent at uniform intervals, the data reproduced on the receiving side do not become CBR data.
To prevent this problem from occurring, a buffer is provided to store cells on the receiving side. That is to say, the received cells are temporarily stored in the buffer, and fluctuations are absorbed by reading those cells out of the buffer at uniform intervals.
FIG. 4 is a diagram of an existing device that absorbs fluctuations in cell intervals. This fluctuation-absorbing device is incorporated into the device that receives cells output from the ATM exchange device. The fluctuation-absorbing device shown in FIG. 4 is described in detail in Japan Patent Application No. 07-005748, so its configuration and action will only be described briefly here. It is assumed here that the fluctuation-absorbing device shown in FIG. 4 is for AAL1, and handles cells of the format shown in FIG. 2.
The ATM disassembly section 21 removes the 47-byte information field (SAR-SDU) from an arrived cell and writes it into the cell FIFO section 22. In addition the Sequence Number (SN) is extracted from that cell and posted to the read clock generation section 26.
The cell FIFO section 22 stores the 47-byte information field (SAR-SDU) extracted by the ATM cell disassembly section 21.
The user clock frequency division section 23 generates the User Clock (UC) by frequency division of the network clock (NC) (for example, taking 1/8 of 155.52 MHz). The User Clock (UC) is a clock that is required by each of the services.
When the first cell to be written into the cell FIFO section 22 arrives, the first cell detection section 24 posts notice of this arrival to the cell counter section 25. When this notice arrives from the first cell detection section 24, the cell counter section 25 counts the amount of data written into the cell FIFO section 22 in cell units (47-byte units). Then, when the count reaches N, a readout start signal RDST is posted to the read clock generation section 26. Here N is the amount of fluctuation absorbed.
After the readout start signal RDST is received, the read clock generation section 26 outputs a Readout Clock (RC) of the same frequency as the User Clock (UC) to the selector section 28. In addition, the Sequence Number (SN) posted from the ATM cell disassembly section 21 is monitored; if the Sequence Number (SN) of a certain cell is not 1 more than the Sequence Number (SN) of the immediately preceding cell, then it is considered that a cell has been lost, and a readout stop signal XRDSTP is output to the selector section 28.
When the cell FIFO section 22 is empty, or when the cell FIFO section 22 is full, the FIFO reset generation section 27 resets the cell FIFO section 22 and the cell counter section 25.
The selector section 28 uses the Readout Clock (RC) to read data out of the cell FIFO section 22 and output them as User Information (UI). However, during an interval when a readout stop signal XRDSTP is received, dummy data are output as User Information (UI) instead of data read out of the cell FIFO section 22.
Thus, received cell information field data are temporarily stored in the cell FIFO section 22, and the fluctuations are absorbed by reading those data out in accordance with the fixed frequency User Clock (UC).
The amount of fluctuation that can be absorbed is determined by how many cells of data are stored in the cell FIFO section 22. For example, if 20 cells of data are stored in the cell FIFO section 22, fluctuation corresponding to 20 cell intervals can be absorbed. In this case, the amount of fluctuation that can be absorbed is defined to be 20.
However, when the cell FIFO section 22 is empty, data cannot be read out of the cell FIFO section 22, and so CBR data cannot be generated. Similarly, when the cell FIFO section 22 is full, additional data cannot be written in, so data are discarded. Consequently, it is required to keep the number of cells stored in the cell FIFO section 22 approximately constant.
When the ATM exchange device becomes congested, cells of low priority are discarded. When a cell is discarded, the data stored in that discarded cell are not written into the cell FIFO section 22, but in the case of CBR data transfer, data readout from the cell FIFO section 22 is continued at a fixed bit rate, so the number of cells in the cell FIFO section 22 decreases. Even when this kind of cell loss occurs, the fluctuation absorption device shown in FIG. 4 can keep the number of cells in the cell FIFO section 22 fixed.
FIG. 5 explains the action of the fluctuation absorption device when cell loss occurs. Here it is assumed the amount of fluctuation to be absorbed is 20.
As shown in FIG. 5, a Sequence Number (SN) is assigned to each cell in the order in which it is sent. Here we assume that the cells SN=5 and SN=6 are discarded in the ATM exchange device. That is to say, we are explaining the case in which the cell SN=7 arrives immediately after the cell SN=4 on the receiving side.
Every time a cell arrives, that cell is written into the cell FIFO section 22, and the number of cells (amount of data) in the cell FIFO section 22 increases. When the number of cells in the cell FIFO section 22 reaches 20, cells are read out of the cell FIFO section 22 in accordance with the User Clock (UC). If there is no fluctuation of the cell interval (when the fluctuations are averaged, they can be considered to be 0), then the rate of writing in of cells to the cell FIFO section 22 equals the rate of readout of cells from the cell FIFO section 22, so the number of cells in the cell FIFO section 22 is maintained at 20.
When the cells SN=5 and SN=6 are lost, compared to the case in which those 2 cells are not lost the number of cells written into the cell FIFO section 22 decreases by 2, but readout of cells from the cell FIFO section 22 continues at a fixed rate. Consequently, the number of cells in the cell FIFO section 22 decreases (in FIG. 5, it decreases from 20 to 19 and then to 18).
When the cell SN=7 arrives, the Sequence Number of the immediately preceding arrived cell was SN=4, so it is recognized that 2 cells have been lost. When this happens, the readout of cells from the cell FIFO section 22 is halted for the time required to read 2 cells out, and, at the same time, an amount of dummy data equivalent to the 2 cells is created and output as User Information (UI). During the time that the cell readout is halted, 2 more cells arrive and are written into the cell FIFO section 22, so the number of cells in the cell FIFO 22 increases and returns to 20.
Thus, even when cells are lost, the number of cells in the cell FIFO section 22 is held fixed.
As explained above, in an existing type of fluctuation absorption device, by using the Sequence Number (SN) to control the cell FIFO buffer 22, the system is protected against cell loss. However, as shown in FIG. 2C, the Sequence Number (SN) is a 3-bit number, and its value is incremented cyclically. Consequently, the Sequence Number (SN) cannot have a value greater than 8, which causes the following problem.
FIG. 6 explains a problem that occurs in an existing type of fluctuation absorption device. Here the amount of fluctuation that is absorbed is 20. Suppose that in an ATM exchange device, 18 cells (SN=5, 6, 7, 0, 1, 2, 3, 4, then again SN=5 to 4, and SN=5 and 6) in a row are lost. Call the cell immediately before the 18 lost cells cell A (SN=4) and the cell immediately after them cell B (SN=7). Further, suppose that at the time at which cell A arrives, the number of cells in the cell FIFO section 22 is 20.
After cell A arrives, during the interval until cell B arrives no cells arrive, so the write-in of cells into the cell FIFO section 22 is halted, but readout of cells from the cell FIFO section 22 continues at a fixed bit rate. Consequently, the number of cells in the cell FIFO section 22 continues to decrease until cell B arrives. That is to say, since 18 cells are lost, the number of cells in the cell FIFO section 22 decreases from 20 to 2.
When cell B arrives, the Sequence Number of cell B is 7, while the Sequence Number (SN) of the immediately preceding arrived cell A was 4, so it is estimated that 2 cells were lost between cell A and cell B. This means that the readout of cells from the cell FIFO section 22 is only halted for the time it takes 2 cells to be read out; during this time dummy data are created to replace the lost cells SN=5 and 6 and output as User Information (UI). During the time that cell readout is halted from the cell FIFO section 22, 2 cells are received and written in the cell FIFO section 22, so the number of cells in the cell FIFO section 22 increases by 2 to 4.
After that, if cells arrive without further loss, the rates of read-in of cells into the cell FIFO section 22 and read-out of cells from the cell FIFO section 22 are equal, so the number of cells in the cell FIFO section 22 remains at 4.
Thus, in an existing type of fluctuation absorption device, if cells are lost in bursts, the number of cells in the cell FIFO section 22 will decrease. When the number of cells in the cell FIFO section 22 is at a low level, only a small delay of cells can cause the cell FIFO section 22 to become empty, making CBR data reproduction impossible. For example, in a service that transfers motion picture data if data are no longer reproduced at a constant bit rate, the motion picture will be disrupted and/or go out of synchronization with the audio data being transferred at the same time.
When motion picture data and audio data are routed inside the ATM exchange device in cell format, in general they have low priority, with a high probability of being discarded when congestion occurs. For this reason, it is possible for continuous loss of cells in which motion picture data and audio data are stored, in other words loss of cells in bursts, to occur.